I. Read-in the data and rename the columns.

Note:

Check duplicates before converting date-time feature into pandas Timestamp object, and eventually into DatetimeIndex object.

II. Count the number of NaNs in each dataframe.

III. Get the 'shape' (row, column) of each dataframe.

IV. Get the date-time range of each dataframe.

V. Get the average time interval for each dataframe.

VI. Count how many timestamps match among each dataframe.

End Stage 1. Preliminary evaluation.


VII. Merge.

Note: interpolation was defered to after the merge was completed for some of the datasets due to error message that wasn't there initially when merge and interpolation was done together in one line of code(commented out) for the whole dataframe. (instead, interpolation was applied to a series of interest).

End Stage 2 - datasets merged.


VIII. Extrapolate 'Acceleration'.

End of Stage 3. Acceleration extrapolated.

IX. Extrapolate Grade and Angle.

X. Set the 'DateTime' column as an index to enable convenient DatetimeIndex object methods such as resampling.

XI. Resample(downsample) timeseries down to hour and day and aggregate.

XII. Extrapolate acceleration, grade, angle from resampled(minute, hour, day) dataset.

XIII. Resample(upsample) timeseries to 2 second invertvals and interpolate.

XIV. Basic stats.

Graphs.

Basic Bokeh graphing template:

Basic Pandas Bokeh template: different from Bokeh template above.

Gap And Inactivity Analysis: investigating zeros and sections of graphs.

Zero activity: We can see that dates 8/12 - 8/17 had no activity. There are no timestamps in the original csv file, so we can conclude that it(charging, EV bus, ECU or whatever) was offline. For dates 8/2, 8/9, 8/11 being zero is due to the merging and resampling process to 'Day' frequency that dropped unmatching timestamps and/or ignored missing resolution for resampling purpose. In other words, the 'Count Of Activity' table was made from a merged dataset that dropped unmathcing timestamps already. Same reasoning can be applied to 8/18 where only 3 timestamps matched-up and 'survived' the resampling process.

GPS dataset ouput in chunks for upload to get elevation data.